Grove Beginner Kit レッスン 補足
Lesson 4
code:lesson4x1.js
int BuzzerPin = 5;
void setup() {
pinMode(BuzzerPin, OUTPUT);
}
void loop() {
analogWrite(BuzzerPin, 128);
delay(1000);
analogWrite(BuzzerPin, 0);
delay(1000);
}
code: lesson 4x2.js
int BuzzerPin = 5;
void setup() {
pinMode(BuzzerPin, OUTPUT);
}
void loop() {
analogWrite(BuzzerPin, 256);
delay(200);
analogWrite(BuzzerPin, 192);
delay(200);
analogWrite(BuzzerPin, 128);
delay(200);
analogWrite(BuzzerPin, 64);
delay(200);
analogWrite(BuzzerPin, 0);
delay(500);
}
code:lesson_4x3.js
int BuzzerPin = 5;
void setup() {
pinMode(BuzzerPin, OUTPUT);
}
void loop() {
tone(BuzzerPin, 261);//ド
delay(500);
tone(BuzzerPin, 293);//レ
delay(500);
tone(BuzzerPin, 330);//ミ
delay(500);
}
Lesson 7
ライブラリ「u8g9 」で検索&インストール
9行目のコメントアウトを外す
code:lesson7x.js
u8x8.setBusClock(100000);
フォントを変える
Lesson 8
温度湿度センサをD3につなぐ
ライブラリ「Grove Temperature and Humidity Sensor(DHT11) 」で検索&インストール
16行目に追記する
code: lesson8x.js
//Temperature and Humidity Sensor
#define DHTPIN 3 // what pin we're connected to DHT dht(DHTPIN, DHTTYPE);
U8X8_SSD1306_128X64_NONAME_HW_I2C u8x8(/* reset=*/ U8X8_PIN_NONE);
void setup(void) {
Serial.begin(9600);
Serial.println("DHTxx test!");
dht.begin();
u8x8.setBusClock(100000);
u8x8.begin();
u8x8.setPowerSave(0);
u8x8.setFlipMode(1);
}
void loop(void) {
float temp, humi;
temp = dht.readTemperature();
humi = dht.readHumidity();
u8x8.setFont(u8x8_font_chroma48medium8_r);
u8x8.setCursor(0, 33);
u8x8.print("Temp:");
u8x8.print(temp);
u8x8.print("C");
u8x8.setCursor(0,50);
u8x8.print("Humidity:");
u8x8.print(humi);
u8x8.print("%");
u8x8.refreshDisplay();
delay(200);
}
Lesson 9
ライブラリ「Grove BMP280」検索&インストール
Lesson 10
ライブラリのダウンロード先
https://gyazo.com/b7548eb61274e939e26bc6883a8d04b1
基板のバージョンによって、加速度センサが認識されないことがある
回路にバグがあるので配線を修正する
Arduino 関数一覧
/icons/---.icon
応用編
アクチュエータを接続する
ボリュームでサーボモータを動かす
code: servo.js
//サーボをArduinoに接続する
// オレンジ→D9、赤→5V、焦茶→GND
//AOにボリュームをつなぐ
Servo myservo;
int angle = 0;
void setup() {
// put your setup code here, to run once:
myservo.attach(9);
}
void loop() {
// put your main code here, to run repeatedly:
angle = analogRead(A0);
angle = map(angle, 0, 1023, 0, 180);
myservo.write(angle);
delay(10);
}
ステッパーモーター(28byj-48)を制御する
code: step.js
int interval = 4500;
void setup() {
pinMode(orange, OUTPUT);
pinMode(pink, OUTPUT);
pinMode(yellow, OUTPUT);
pinMode(blue, OUTPUT);
}
void loop() {
for(int i=0; i<=200; i++){
ccw();
}
delay(1000);
for(int i=0; i<=200; i++){
cw();
}
delay(1000);
}
void ccw(){
digitalWrite(orange, HIGH);
digitalWrite(pink, HIGH);
digitalWrite(yellow, LOW);
digitalWrite(blue, LOW);
delayMicroseconds(interval);
digitalWrite(orange, LOW);
digitalWrite(pink, HIGH);
digitalWrite(yellow, HIGH);
digitalWrite(blue, LOW);
delayMicroseconds(interval);
digitalWrite(orange, LOW);
digitalWrite(pink, LOW);
digitalWrite(yellow, HIGH);
digitalWrite(blue, HIGH);
delayMicroseconds(interval);
digitalWrite(orange, HIGH);
digitalWrite(pink, LOW);
digitalWrite(yellow, LOW);
digitalWrite(blue, HIGH);
delayMicroseconds(interval);
}
void cw(){
digitalWrite(orange, HIGH);
digitalWrite(pink, LOW);
digitalWrite(yellow, LOW);
digitalWrite(blue, HIGH);
delayMicroseconds(interval);
digitalWrite(orange, LOW);
digitalWrite(pink, LOW);
digitalWrite(yellow, HIGH);
digitalWrite(blue, HIGH);
delayMicroseconds(interval);
digitalWrite(orange, LOW);
digitalWrite(pink, HIGH);
digitalWrite(yellow, HIGH);
digitalWrite(blue, LOW);
delayMicroseconds(interval);
digitalWrite(orange, HIGH);
digitalWrite(pink, HIGH);
digitalWrite(yellow, LOW);
digitalWrite(blue, LOW);
delayMicroseconds(interval);
}